﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Inmobiliaria.Presenters.ViewInterfaces;
using Inmobiliaria.Presenters.WFPresenters;
using Inmobiliaria.Exceptions;
using Inmobiliaria.Services.Core.DTO;
using System.Web.UI.HtmlControls;
using System.Windows.Forms;
using System.IO;
using System.Drawing;
using Inmobiliaria.Presenters.WFPresenters.Recursos;



public partial class VentasWF : System.Web.UI.Page, IViewVentasWUC, IView, IViewConsultarVentas
{
    ConsultarVentasPresenter _presenter;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            _presenter = new ConsultarVentasPresenter(this);
            //_presenter.Consultas();
            //IMensajeDeDialogoPregunta mensajeDeDialogo = (IMensajeDeDialogoPregunta)this.Master.FindControl("form1").FindControl("MensajeDeDialogoPregunta");
            //mensajeDeDialogo.Presenter = _presenter;

            if (!IsPostBack)
            {
                cmbProvincias.SelectedIndexChanged += new EventHandler(cmbProvincias_SelectedIndexChanged);
                cmbTipoInmueble.SelectedIndexChanged += new EventHandler(cmbTipoInmueble_SelectedIndexChanged);
                cmbLocalidad.SelectedIndexChanged += new EventHandler(cmbLocalidad_SelectedIndexChanged);
                _presenter.InitView(Request.QueryString);
                //Session["SolapaAcordion"] = Enumeraciones.SolapaAccordion.Inmueble;
                // Limpiar();
            }
        }
        catch
        {
        }
    }
    public void cmbTipoInmueble_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (cmbTipoInmueble.Text != "3")
        {
            cmbHabitaciones.Enabled = true;
        }
        else
        {
            cmbHabitaciones.Enabled = false;
        }
    }
    protected void cmbProvincias_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (!String.IsNullOrEmpty(cmbProvincias.SelectedValue))
            {

                _presenter.CargarComboLocalidades();
                this.cmbLocalidad.Enabled = true;
            }
            else
            {
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    protected void cmbLocalidad_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (!String.IsNullOrEmpty(cmbLocalidad.SelectedValue))
            {

                _presenter.CargarComboBarrio();
                this.cmbBarrio.Enabled = true;
            }
            else
            {
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public bool ConsultaVisible
    {
        set { divBusqueda.Visible = value; }
    }
    public bool FormularioVisible
    {
        set { divFormulario.Visible = value; }
    }
    //-- gridview
    protected void gvConsultaVentas_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton btn;
                //Boton Ver
                btn = (ImageButton)e.Row.FindControl("btnVer");
                btn.CommandArgument = e.Row.RowIndex.ToString();
            }
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
    protected void gvConsultaVentas_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (!(e.CommandName == "Ver")) return;
        try
        {
            gvConsultaVentas.SelectedIndex = Convert.ToInt32(e.CommandArgument);
            string Inmueble = gvConsultaVentas.SelectedRow.Cells[0].Text;
            int idInmueble = int.Parse(Inmueble);
            //int index = Convert.ToInt32(e.CommandArgument);
            //int idInmueble = Convert.ToInt32(gvConsultaVentas.DataKeys[1].Value);

            switch (e.CommandName)
            {
                case "Ver":
                    Ver(idInmueble);
                    break;
            }
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
    private void Ver(int idInmueble)
    {
        List<DtoListaInmueble> actas = this.Session["lista"] as List<DtoListaInmueble>;
        // DtoListaInmueble inmu = actas.ElementAt(idInmueble);
        _presenter.VerInmueble(idInmueble);

    }
    protected void gvConsultaVentas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvConsultaVentas.DataSource = this.Session["lista"];
            gvConsultaVentas.PageIndex = e.NewPageIndex;
            gvConsultaVentas.DataBind();

        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
    #region IViewPersonaWUC Members

    public bool TotalVisible
    {
        set
        {
            lblTotal.Visible = value;
            lbTotalGrilla.Visible = value;
        }
    }
    public bool ImprimirInmueble
    { set { } }//btnImprimirLicenciaConducir.Visible = value; } }
    public List<DtoListaInmueble> ListarInmuebles
    {
        set
        {
            this.Session["lista"] = value;
            lbTotalGrilla.Text = value.Count.ToString();
            gvConsultaVentas.DataSource = value;
            gvConsultaVentas.DataBind();
        }
    }
    public string CodigoInmueble
    {
        get { return txtCodigoInmueble.Text; }
    }
    public string Habitacion
    {
        get { return cmbHabitaciones.SelectedValue; }
    }
    public string[] Habitaciones
    {
        set
        {
            cmbHabitaciones.Items.Clear();
            cmbHabitaciones.Items.Add(new ListItem("Seleccione", ""));
            foreach (string item in value)
            {
                cmbHabitaciones.Items.Add(new ListItem(item, item));
            }
        }
    }
    public int tipoInmueble
    {
        get
        {
            int id = int.Parse(cmbTipoInmueble.Text);
            return id;

        }
    }
    public List<DtoTipoInmueble> TipoInmueble
    {
        set
        {
            cmbTipoInmueble.Items.Clear();
            cmbTipoInmueble.Items.Add(new ListItem("Seleccione", ""));
            foreach (DtoTipoInmueble item in value)
            {
                cmbTipoInmueble.Items.Add(new ListItem(item.Nombre, item.Id.ToString()));
            }
        }
    }
    public string Transaccion
    {
        get { return cmbTipoTransaccion.SelectedValue; }
    }
    public string[] Transacciones
    {
        set
        {
            cmbTipoTransaccion.Items.Clear();
            cmbTipoTransaccion.Items.Add(new ListItem("Seleccione", ""));
            foreach (string item in value)
            {
                cmbTipoTransaccion.Items.Add(new ListItem(item, item));
            }
        }
    }
    public int Localidad
    {
        get
        {
            int id = int.Parse(cmbLocalidad.Text);
            return id;
        }
    }
    public List<DtoLocalidades> Localidades
    {
        set
        {
            cmbLocalidad.Items.Clear();
            cmbLocalidad.Items.Add(new ListItem("Seleccione", ""));
            foreach (DtoLocalidades item in value)
            {
                cmbLocalidad.Items.Add(new ListItem(item.Nombre, item.Id.ToString()));
            }
        }
    }
    public int Barrio
    {
        get
        {
            int id = int.Parse(cmbBarrio.Text);
            return id;
        }
    }
    public List<DtoBarrios> Barrios
    {
        set
        {
            cmbBarrio.Items.Clear();
            cmbBarrio.Items.Add(new ListItem("Seleccione", ""));
            foreach (DtoBarrios item in value)
            {
                cmbBarrio.Items.Add(new ListItem(item.Nombre, item.Id.ToString()));
            }
        }
    }
    public int Provincia
    {
        get
        {
            int id = int.Parse(cmbProvincias.Text);
            return id;
        }
    }
    public List<DtoProvincias> Provincias
    {
        set
        {
            cmbProvincias.Items.Clear();
            cmbProvincias.Items.Add(new ListItem("Seleccione", ""));
            foreach (DtoProvincias item in value)
            {
                cmbProvincias.Items.Add(new ListItem(item.Nombre, item.Id.ToString()));
            }
        }
    }
    public void HabilitarCampos(bool valor)
    {
        cmbVendedor.Enabled = valor;
    }
    public void Limpiar()
    {
        cmbVendedor.ClearSelection();
    }
    public string TipoVendedor
    {
        get { return cmbVendedor.SelectedValue; }
    }
    public string[] TiposVendedores
    {
        set
        {
            cmbVendedor.Items.Clear();
            cmbVendedor.Items.Add(new ListItem("Seleccione", ""));
            foreach (string item in value)
            {
                cmbVendedor.Items.Add(new ListItem(item, item));
            }
        }
    }
    public int? Inmueble
    {
        get
        {
            if (cmbTipoInmueble.SelectedValue.Length == 0) return null;
            return Convert.ToInt32(cmbTipoInmueble.SelectedValue);
        }
        set
        {
            if (value.HasValue) cmbTipoInmueble.SelectedValue = value.ToString();
        }
    }
    public int? IdProvincia
    {
        get
        {
            if (cmbProvincias.SelectedValue.Length == 0) return null;
            return Convert.ToInt32(cmbProvincias.SelectedValue);
        }
        set
        {
            if (value.HasValue) cmbProvincias.SelectedValue = value.ToString();
        }
    }
    public int? IdLocalidad
    {
        get
        {
            if (cmbLocalidad.SelectedValue.Length == 0) return null;
            return Convert.ToInt32(cmbLocalidad.SelectedValue);
        }
        set
        {
            if (value.HasValue) cmbLocalidad.SelectedValue = value.ToString();
        }
    }
    public int? IdBarrio
    {
        get
        {
            if (cmbBarrio.SelectedValue.Length == 0) return null;
            return Convert.ToInt32(cmbBarrio.SelectedValue);
        }
        set
        {
            if (value.HasValue) cmbBarrio.SelectedValue = value.ToString();
        }
    }
    #endregion
    #region Mensajes
    public void ShowMessage(string message)
    {
        throw new NotImplementedException();
    }
    public void Error(string message)
    {
        // MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, message);
    }
    public void ShowError(Exception ex)
    {
        throw new NotImplementedException();
    }
    public void ShowQuestion(string message)
    {
        throw new NotImplementedException();
    }
    #endregion
    protected void btnBuscarLista_Click(object sender, EventArgs e)
    {
        try
        {
            _presenter.ConsultarInmueblesLista();
        }
        catch (Exception ex)
        {
            ShowMessage(ex.Message);
        }
    }
    protected void btnVolver_Click(object sender, EventArgs e)
    {
        try
        {
            _presenter.VolverInmueble();
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
    public IViewInmuebleWUC GetInmuebleWUC
    {
        get { return InmuebleWUC; }
    }
}